package com.ruoyi.market.domain.dto;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ruoyi.market.domain.vo.PageVo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class SkuCouponsCategoriesDto {
    private static final long serialVersionUID = 1L;
    private Long couponGroupId;
    private String couponGroupName;
    private List<SkuCouponsDto> skus;
    private List<PageVo> pagination;

    // SKU相关字段
    @JsonIgnore
    private Long skuId;
    @JsonIgnore
    private Long spuId;
    @JsonIgnore
    private String code;
    @JsonIgnore
    private String specData;
    @JsonIgnore
    private BigDecimal price;
    @JsonIgnore
    private BigDecimal originalPrice;
    @JsonIgnore
    private String skuName;
    @JsonIgnore
    private String description;
    @JsonIgnore
    private Long stock;
    @JsonIgnore
    private Long salesVolume;
    @JsonIgnore
    private Long lowStock;
    @JsonIgnore
    private BigDecimal weight;
    @JsonIgnore
    private BigDecimal volume;
    @JsonIgnore
    private Integer status;
    @JsonIgnore
    private String specNameGroupRaw;
    @JsonIgnore
    private String specValueGroupRaw;
    @JsonIgnore
    private Date createdAt;
    @JsonIgnore
    private Date updatedAt;
    @JsonIgnore
    private String urlRaw;

    // 优惠券相关字段
    @JsonIgnore
    private Long couponId;
    @JsonIgnore
    private String couponCode;
    @JsonIgnore
    private String couponName;
    @JsonIgnore
    private Integer couponType;
    @JsonIgnore
    private BigDecimal couponValue;
    @JsonIgnore
    private Long couponStock;
    @JsonIgnore
    private BigDecimal couponMinAmount;
    @JsonIgnore
    private Date couponStartTime;
    @JsonIgnore
    private Date couponEndTime;
    @JsonIgnore
    private Date getTime;
    @JsonIgnore
    private Integer couponStatus;
    @JsonIgnore
    private String couponRemark;

    // 活动相关字段
    @JsonIgnore
    private Long activityId;
    @JsonIgnore
    private String activityName;
    @JsonIgnore
    private Integer activityType;
    @JsonIgnore
    private Date activityStartTime;
    @JsonIgnore
    private Date activityEndTime;
    @JsonIgnore
    private String activityDescription;
    @JsonIgnore
    private String posterUrl;
    @JsonIgnore
    private Integer activityStatus;
    @JsonIgnore
    private Date activityCreateTime;


    @JsonIgnore
    private Long total;
    @JsonIgnore
    private Long pageNum;
    @JsonIgnore
    private Long pageSize;
}
